package br.com.cqipac.to;

// Generated 24/06/2008 08:32:05 by Hibernate Tools 3.2.1.GA

import java.util.Date;
import java.util.HashSet;
import java.util.Set;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import static javax.persistence.GenerationType.IDENTITY;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

/**
 * Setor generated by hbm2java
 */
@Entity
@Table(name = "tb_setor", catalog = "db_cq_ipac")
public class Setor implements java.io.Serializable {

	private Integer codSetor;
	private Funcionario funcionarioByCodFuncionarioResponsavel;
	private Funcionario funcionarioByCodFuncionarioInclusao;
	private String nomSetor;
	private String desSetor;
	private boolean stsSetor;
	private Date dtInclusao;
	private Set setorFuncionarios = new HashSet(0);
	private Set naoConformidadesForCodSetorCausador = new HashSet(0);
	private Set naoConformidadesForCodSetorIdentificante = new HashSet(0);

	public Setor() {
	}

	public Setor(Funcionario funcionarioByCodFuncionarioResponsavel,
			Funcionario funcionarioByCodFuncionarioInclusao, String nomSetor,
			String desSetor, boolean stsSetor, Date dtInclusao) {
		this.funcionarioByCodFuncionarioResponsavel = funcionarioByCodFuncionarioResponsavel;
		this.funcionarioByCodFuncionarioInclusao = funcionarioByCodFuncionarioInclusao;
		this.nomSetor = nomSetor;
		this.desSetor = desSetor;
		this.stsSetor = stsSetor;
		this.dtInclusao = dtInclusao;
	}

	public Setor(Funcionario funcionarioByCodFuncionarioResponsavel,
			Funcionario funcionarioByCodFuncionarioInclusao, String nomSetor,
			String desSetor, boolean stsSetor, Date dtInclusao,
			Set setorFuncionarios, Set naoConformidadesForCodSetorCausador,
			Set naoConformidadesForCodSetorIdentificante) {
		this.funcionarioByCodFuncionarioResponsavel = funcionarioByCodFuncionarioResponsavel;
		this.funcionarioByCodFuncionarioInclusao = funcionarioByCodFuncionarioInclusao;
		this.nomSetor = nomSetor;
		this.desSetor = desSetor;
		this.stsSetor = stsSetor;
		this.dtInclusao = dtInclusao;
		this.setorFuncionarios = setorFuncionarios;
		this.naoConformidadesForCodSetorCausador = naoConformidadesForCodSetorCausador;
		this.naoConformidadesForCodSetorIdentificante = naoConformidadesForCodSetorIdentificante;
	}

	@Id
	@GeneratedValue(strategy = IDENTITY)
	@Column(name = "cod_setor", unique = true, nullable = false)
	public Integer getCodSetor() {
		return this.codSetor;
	}

	public void setCodSetor(Integer codSetor) {
		this.codSetor = codSetor;
	}

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "cod_funcionario_responsavel", nullable = false)
	public Funcionario getFuncionarioByCodFuncionarioResponsavel() {
		return this.funcionarioByCodFuncionarioResponsavel;
	}

	public void setFuncionarioByCodFuncionarioResponsavel(
			Funcionario funcionarioByCodFuncionarioResponsavel) {
		this.funcionarioByCodFuncionarioResponsavel = funcionarioByCodFuncionarioResponsavel;
	}

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "cod_funcionario_inclusao", nullable = false)
	public Funcionario getFuncionarioByCodFuncionarioInclusao() {
		return this.funcionarioByCodFuncionarioInclusao;
	}

	public void setFuncionarioByCodFuncionarioInclusao(
			Funcionario funcionarioByCodFuncionarioInclusao) {
		this.funcionarioByCodFuncionarioInclusao = funcionarioByCodFuncionarioInclusao;
	}

	@Column(name = "nom_setor", nullable = false, length = 45)
	public String getNomSetor() {
		return this.nomSetor;
	}

	public void setNomSetor(String nomSetor) {
		this.nomSetor = nomSetor;
	}

	@Column(name = "des_setor", nullable = false, length = 100)
	public String getDesSetor() {
		return this.desSetor;
	}

	public void setDesSetor(String desSetor) {
		this.desSetor = desSetor;
	}

	@Column(name = "sts_setor", nullable = false)
	public boolean isStsSetor() {
		return this.stsSetor;
	}

	public void setStsSetor(boolean stsSetor) {
		this.stsSetor = stsSetor;
	}

	@Temporal(TemporalType.TIMESTAMP)
	@Column(name = "dt_inclusao", nullable = false, length = 19)
	public Date getDtInclusao() {
		return this.dtInclusao;
	}

	public void setDtInclusao(Date dtInclusao) {
		this.dtInclusao = dtInclusao;
	}

	@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "setor")
	public Set getSetorFuncionarios() {
		return this.setorFuncionarios;
	}

	public void setSetorFuncionarios(Set setorFuncionarios) {
		this.setorFuncionarios = setorFuncionarios;
	}

	@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "setorByCodSetorCausador")
	public Set getNaoConformidadesForCodSetorCausador() {
		return this.naoConformidadesForCodSetorCausador;
	}

	public void setNaoConformidadesForCodSetorCausador(
			Set naoConformidadesForCodSetorCausador) {
		this.naoConformidadesForCodSetorCausador = naoConformidadesForCodSetorCausador;
	}

	@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "setorByCodSetorIdentificante")
	public Set getNaoConformidadesForCodSetorIdentificante() {
		return this.naoConformidadesForCodSetorIdentificante;
	}

	public void setNaoConformidadesForCodSetorIdentificante(
			Set naoConformidadesForCodSetorIdentificante) {
		this.naoConformidadesForCodSetorIdentificante = naoConformidadesForCodSetorIdentificante;
	}

}
